# _*_ coding : utf-8 _*_
# @Time : 2025/5/6 19:47
# @Author : 梁满仓
# @File : extract_text
# @Project : study_python

from bs4 import BeautifulSoup


def html_to_txt_proper_indent(html_file, output_txt):
    # 读取HTML文件
    with open(html_file, 'r', encoding='utf-8') as f:
        html_content = f.read()

    # 使用BeautifulSoup解析HTML
    soup = BeautifulSoup(html_content, 'html.parser')

    # 提取章节标题（h1标签）
    chapter_title = soup.find('h1')
    title_text = chapter_title.get_text(strip=True) if chapter_title else "无标题章节"

    # 提取正文内容
    content_div = soup.find('div', id='content')

    # 初始化结果文本
    result_text = f"{title_text}\n\n"

    if content_div:
        # 提取所有段落（p标签）
        paragraphs = content_div.find_all('p')
        for p in paragraphs:
            # 获取段落文本并去除首尾空白
            paragraph_text = p.get_text(strip=True)
            if paragraph_text:  # 忽略空段落
                # 在段落第一行前添加4个空格（中文空两格）
                # 后续行不缩进（自动换行时保持对齐）
                result_text += f"    {paragraph_text}\n\n"
    else:
        result_text += "    未找到正文内容\n"

    # 写入TXT文件
    with open(output_txt, 'w', encoding='utf-8') as f:
        f.write(result_text)
    print(f"成功生成符合中文排版的TXT文件: {output_txt}")


# 使用示例
html_file = 'downloaded_pages/10433955.html'  # 输入的HTML文件
output_txt = 'downloaded_pages/output.txt'  # 输出的TXT文件

html_to_txt_proper_indent(html_file, output_txt)





